Methods and systems for cloud computing management

ABSTRACT

Disclosed is a management service that enables a user to establish, monitor, and control cloud computing sessions offered via third-party service providers. In some instances, the management service establishes a market space that allows a user to establish a customized cloud computing session based on computing resources offered by third-party service providers. In some instances, the management service instantiates monitoring mechanisms within the virtual servers of the cloud computing sessions to be able to monitor, assess, and provide reports and alerts pertaining to performance metrics of the various virtual servers. In some instances, the management service also allows a user to remotely transfer services from a first cloud computing session to a second cloud computing session.

CLAIM OF PRIORITY AND CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/176,841, entitled METHODS AND SYSTEMS FOR CLOUD COMPUTINGMANAGEMENT, filed May 8, 2009, which is hereby incorporated by referencein its entirety.

FIELD OF THE INVENTION

Embodiments described in this application pertain to cloud computingtechnology, and more particularly, to techniques for management of cloudcomputing services offered by service providers, the techniquesincluding establishing a market space for cloud computing services,monitoring and reporting of performance metrics associated with cloudcomputing services offered by various service providers, and providingcapabilities to enable users to transfer cloud computing services fromone service provider to another.

BACKGROUND

There are many situations in which an individual user or an organizationmay desire to lease one or more server computer systems on a short orlong-term basis. Examples include educational or classroom services,demonstration of software to potential users or buyers, website serverapplications, etc. The servers may be pre-configured with selectedoperating systems and application software as desired. Although physicalservers may be leased and physically delivered for onsite use, serversmay also be leased from a central or remote location and accessed via anintermediate network system, such as the Internet. The primaryconsiderations for remote access include the capabilities of the remoteaccess software and the network connection or interface.

Remote access technology is known and many variations exist, such asMicrosoft Terminal Server, Citrix MetaFrame, Symantec pcAnywhere, VMwareRemote Console, etc. In general, local client software operates on aclient computer that enables communication with server softwareoperating on a server computer. Generally, the client software provideskeyboard and mouse commands and receives video and audio information andthere is little or no local client processing necessary. Serverproviders may also desire to share a single physical server amongmultiple users to more efficiently utilize server resources. Many remoteaccess systems enable multiple access by simultaneously activatingseparate user sessions. Although some files may be shared, other filesor directories or even disk drives may have permission-based attributesso that only authorized persons have access. The same may be true forother physical or software resources existing on or coupled to thephysical server. Although multiple access to a single physical serverhas many benefits, it may be desired to provide a greater degree ofisolation between or independence among the users for a variety ofreasons, such as, for example, improved security. Also, each user may bedetrimentally affected by activities of or problems caused by one ormore other users. If any user causes accidental or intentional shutdownof the physical computer or any physical resources associated therewith,or uploads a virus or the like, all users may be detrimentally affected.

One solution is the use of virtualization technology that enablesmultiple servers to operate on a single physical computer. One means ofutilizing such virtualized servers (or simply, “virtual servers”) is byuse of a cloud computing environment. Cloud computing is a style ofcomputing in which dynamically scalable and virtualized resources areprovided as a service over the Internet. Users need not have knowledgeof, expertise in, or control over the technology infrastructure in thecloud that supports them. The cloud computing concept incorporatesinfrastructure as a service (laaS), platform as a service (PaaS) andsoftware as a service (SaaS) as well as Web 2.0 and other technologytrends that have the common theme of reliance on the Internet forsatisfying the computing needs of the users. Cloud computing services,for example, provide common business applications online that areaccessed from a web browser, while the software and data are stored onthe physical servers.

SUMMARY

At least one embodiment of the invention pertains to a managementservice that enables a user to establish, monitor, and control cloudcomputing sessions offered via third-party service providers. In someinstances, the management service establishes a market space, allowing auser to pick and choose one or more parameters associated withestablishing a cloud computing session. Using these input selections,the management service communicates with third-party service providersto establish a cloud computing session that matches the user's desiredcriteria.

In some instances, the management service instantiates monitoringmechanisms within the virtual servers of the cloud computing sessions tobe able to monitor, assess, and provide reports and alerts pertaining toperformance metrics of the various virtual servers. In some instances,the management service also allows a user to remotely transfer services(e.g., the virtual servers) from a first cloud computing session to asecond cloud computing session without losing data or process operationsby acting as a type of mediator between the two cloud computingsessions.

Other advantages and features will become apparent from the followingdescription and claims. It should be understood that the description andspecific examples are intended for purposes of illustration only and notintended to limit the scope of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

One or more embodiments of the present invention are illustrated by wayof example and not limitation in the figures of the accompanyingdrawings, in which like references indicate similar elements and inwhich:

FIG. 1 shows a network based cloud computing system in which thetechniques introduced herein can be implemented;

FIG. 2 is an exemplary architecture of the management server,illustrating computational blocks adapted to perform the varioustechniques described herein;

FIG. 3 illustrates an exemplary service transfer mechanism offered bythe management server;

FIG. 4 is an illustration of the market space options offered throughthe management server;

FIG. 5 depicts an exemplary graphical user interface of the managementserver;

FIG. 6 is a second exemplary graphical user interface of the managementserver;

FIG. 7 is a flow diagram of a process for enabling a user to establish acustomized cloud computing environment using the service offered by themanagement server;

FIG. 8 is a flow diagram of an exemplary process for using themanagement server to monitor and retrieve performance metrics related tocloud computing environments; and

FIG. 9 is a flow diagram depicting a process for enabling a user totransfer a cloud computing environment from a first service provider toa second service provider.

DETAILED DESCRIPTION

References in this specification to “an embodiment”, “one embodiment”,or the like, mean that the particular feature, structure orcharacteristic being described is included in at least one embodiment ofthe present invention. Occurrences of such phrases in this specificationdo not necessarily all refer to the same embodiment. The techniquesdescribed herein may be embodied in several forms and manners. Thedescription provided below and the drawings show exemplary embodimentsof the invention. Those of skill in the art will appreciate that thetechniques may be embodied in other forms and manners not shown below.It is understood that the use of relational terms, if any, such asfirst, second, top and bottom, and the like are used solely fordistinguishing one entity or action from another, without necessarilyrequiring or implying any such actual relationship or order between suchentities or actions.

Refer now to FIG. 1, which shows a network based cloud computing systemin which the techniques being introduced here can be implemented. InFIG. 1, users 105 of cloud computing services connect to a managementserver 115 through an interconnect 110. The interconnect 110 may be, forexample, a local area network (LAN), wide area network (WAN),metropolitan area network (MAN), global area network such as theInternet, a Fibre Channel fabric, or any combination of suchinterconnects. Each of the clients (or users) 105 may be, for example, aconventional personal computer (PC), server-class computer, workstation,handheld computing/communication device, or the like.

The management server 115, as described herein, refers to one or morecomputing servers that are configured to provide the various cloudcomputing management services described in this application. In anexemplary architecture as illustrated in FIG. 1, the management server115 includes one or more processors 118 and memory 122 coupled to aninterconnect 119. The interconnect 119 shown in the management server115 is an abstraction that represents any one or more separate physicalbuses, point-to-point connections, or both, connected by appropriatebridges, adapters, or controllers. The interconnect 119, therefore, mayinclude, for example, a system bus, a Peripheral Component Interconnect(PCI) bus or PCI-Express bus, a HyperTransport or industry standardarchitecture (ISA) bus, a small computer system interface (SCSI) bus, auniversal serial bus (USB), IIC (I2C) bus, or an Institute of Electricaland Electronics Engineers (IEEE) standard 1394 bus, also called“Firewire”.

The processor(s) 118 is/are the central processing unit (CPU) of themanagement server 115 and, thus, control the overall operation of themanagement server 115. In certain embodiments, the processor(s) 118accomplish this by executing software or firmware stored in memory 122.The processor(s) 118 may be, or may include, one or more programmablegeneral-purpose or special-purpose microprocessors, digital signalprocessors (DSPs), programmable controllers, application specificintegrated circuits (ASICs), programmable logic devices (PLDs), trustedplatform modules (TPMs), or the like, or a combination of such devices.

The memory 122 is or includes the main memory of the management server115. The memory 122 represents any form of random access memory (RAM),read-only memory (ROM), flash memory, or the like, or a combination ofsuch devices. In use, the memory 122 may contain, among other things,code 123 embodying the functional blocks of the management server 115.Several such functional blocks are described, for example in themanagement server 115 block described in FIG. 2. The

Also connected to the processor(s) 201 through the interconnect 203 area network adapter 120 and a storage adapter 124. The network adapter 120provides the management server 115 with the ability to communicate withremote devices, such as clients 105 or cloud computing blocks 140, overthe interconnect 110 and may be, for example, an Ethernet adapter orFibre Channel adapter. The storage adapter 124 allows the managementserver 115 to access, for example, the storage 126 and may be, forexample, a Fibre Channel adapter or SCSI adapter.

In one embodiment, the management server 115 uses a storage system 126for persistent storage purposes, including, for example, buffering ofdata received from the various cloud computing blocks 140, storinginformation related to metrics recorded from the cloud computing blocks140, etc. The storage system 126 may include a number of nonvolatilestorage devices, which can be, for example, conventional magnetic oroptical disks or tape drives; alternatively, they can be non-volatilesolid-state memory, such as flash memory, or any combination of suchdevices.

FIG. 1 further illustrates one or more cloud computing blocks 140. Acloud computing block 140, as described herein, refers to a cloud ofvirtualized computing servers offered by a particular cloud computingservice provider (or simply, a “service provider”). Each cloud computingblock 140 includes one or more virtualized computing servers 142 (orsimply, “virtual servers”). The virtual servers 142 are established inresponse to a request from a particular user, when the request is, forexample, routed through the management server 115. In some instances,the virtual servers 142 in each cloud computing block 145 areinstantiated by a physical server 145 operated by the respective serviceprovider. A service provider, as referred to herein, may at least insome examples be a third party service provider, implying that theentity associated with the service provider is different from the entityassociated with the management server 115. The physical server 145, asmaintained by the associated service provider, comprises serverarchitecture (e.g., similar to the architecture of the management server115 as described above) to establish and host a virtual server 142 in acloud computing block 140. The service provider may maintain physicalservers in different geographic locations to establish and provide thecloud computing blocks. Examples of commercially available serviceproviders include, for example, Amazon®, Slicehost®, Google®, Go Grid®,etc.

The management server 115 connects to the cloud computing blocks 140through the interconnect 110. It is noted that, in at least someinstances, the interconnect 110 connecting the user 105 to themanagement server 115 is the same as the interconnect 110 connecting themanagement server 115 to the cloud computing blocks 140. This basicexemplary network system of FIG. 1 illustrates the platform on which thevarious techniques described below can be implemented.

FIG. 2 is an exemplary architecture of the management server 115,illustrating computational blocks adapted to perform the varioustechniques described herein. As described above, the management server115 includes one or more processors 118 to perform the techniquesdescribed here. In the illustrated embodiment, the processor 118includes the various computational blocks as functional units. In otherembodiments, the computational blocks may be separate components fromthe processor 118. In certain embodiments, the computational blocks maybe implemented in the form of software (executed by one or moreprogrammable processors). In other embodiments, however, thesecomputational blocks may be implemented in pure hardware, e.g.,specially-designed dedicated circuitry, or as a combination of softwareand specially-designed dedicated circuitry.

It is noted that the list of modules (i.e., the computational blocks)indicated in FIG. 2 are for illustrative purposes. Other modules, aswould be useful to perform logical and deterministic functions of thevarious techniques described here, are considered to be included in thelist of computational blocks. A first computational block, the VSInstantiation Module 1801 includes computational logic to enable a userto instantiate one or more virtual servers 142 in one or more cloudcomputing blocks 140. In some instances, the management server 115receives requests from a user 105 to establish one or more virtualservers 142. The user 105 may indicate specific parameters to establishthe virtual servers 142. An exemplary interface allowing the user toselect and enter such parameters is described below with reference toFIGS. 4 and 5 below.

Consider an example where the user 105 requests (through the interfaceof the management server 115) four virtual servers 142 (each with aparticular performance capacity) from a first service provider and twovirtual servers 142 from a second service provider. The VS instantiationmodule 1801 of the management server 115 processes the request by firstestablishing a connection through interconnect 110 with, for example, anoperating interface (not shown in FIG. 2) of each service provider. TheVS instantiation module 115 may utilize one or more communicationprotocols to establish the connection with the operating interface andexchange communications regarding the required specification. In someinstances, the operating interface of each service provider (or aphysical server associated with each service provider) establishes therequired number of virtual servers 142 in the respective cloud computingblocks 140 and returns the setup information back to the VSinstantiation module 1801. The VS instantiation module 1801 thencommunicates this information back to the user 105, enabling the user tostart utilizing the newly established virtual servers 142. Therefore,the user 105 is able to establish multiple virtual servers with multipleservice providers through one centralized operation, and is spared theneed of separately interfacing with each service provider to establishthe required virtual servers.

In some instances, the management server 115 includes a configurationmodule 1802. The configuration module 1801 operates in tandem with othercomputational blocks in the management server 115 to maintain and shareconfiguration information related the various virtual servers 142established using the management server 115. For example, in someinstances, the configuration module 1802 works in tandem with the VSinstantiation module 1801 to retrieve information related to the variousvirtual servers 142 established for a given user (e.g., cloud computingblock 140 associated with each virtual server 142, performance capacityof each virtual server 142, operable hours of each virtual server 142,user-specific settings associated with each virtual server 142,redundant storage options associated with each virtual server 142,etc.).

In some instances, the configuration module 1802, in addition toperforming the above mentioned functions, also periodically queriesservice providers associated with the management server 115 to obtainrelevant information related to the service providers. The configurationmodule 1802, for example, communicates with an operating interface ofeach service provider to obtain information related to availablebandwidth, retail cost of establishing virtual servers with the serviceprovider, wholesale cost of establishing virtual servers with theservice provider, storage options offered by the service provider, costbased on usage hours of the virtual servers, geographic location ofphysical servers maintained by the service provider, etc. Theconfiguration module 1802 causes such information to be stored in themanagement server 115 for subsequent use in generating a list ofpotential cloud computing configurations (as will be explained in detailbelow with reference to FIGS. 5 and 6).

The management server 115 also includes a metrics readout module 1803,adapted to monitor, retrieve, and record performance metrics associatedwith the various virtual servers 142. A user 105 would find it useful tobe aware of the various performance metrics associated with the virtualservers 142 that may affect his user experience and also the efficiencyof operation of the virtual servers 142. For example, the user 105 wouldfind it advantageous to be aware of the load (memory load, processorload, etc.) on the physical server associated with the cloud computingblock 140 hosting his virtual servers 142. The metrics readout module1803 is adapted to monitor performance metrics related to each virtualserver 142 instantiated through the management server 115.

The metrics readout module 1803 monitors both computing performance andI/O related performance metrics associated with the virtual servers 142.Examples of computing performance metrics include load on the physicalserver associated with the virtual server 142, available memory in theassociated physical server, the number of processes running in thephysical server, processor performance, processor capacity, etc.Examples of I/O related performance metrics include bandwidth of thecommunication bus to each virtual server (e.g., an FSB bandwidth), I/Othroughput times of communication between memory and the processor ofthe associated physical server, network communication between twovirtual servers 142 of a particular cloud computing block 140, networkcommunication between two cloud computing blocks 140 (e.g., where a userhas virtual servers established through two different serviceproviders), etc.

In some instances, the metrics readout module 1803 uses instrumentationbootstraps 160 instantiated in each virtual server 142 to monitor theperformance of each virtual server 142. In one embodiment, the VSinstantiation module 1801 functions in tandem with a bootstrap module1804 to instantiate the instrumentation bootstraps 160 in each virtualserver. In some instances, the VS instantiation module 1801 may installthe instrumentation bootstrap 160 as a regular feature whileinstantiating each virtual server 142. In other instances, where themetrics readout feature is offered as a premium feature, the VSinstantiation module 1801 may install the instrumentation bootstrap 160when the user specifically requests the metrics readout as a premiumfeature. The instrumentation bootstrap, in one embodiment, is a seriesof background processes running on each virtual server 140 to monitorand collect the information from the virtual servers 142 eitherperiodically or upon specific requests from the management server 115.

In one embodiment, the management server 115 includes an aggregationmodule 1805 to record, for example, the various metrics reports, in anaggregated manner. The aggregation module 1805, for example, works intandem with the metrics readout module 1803 to retrieve metrics reportsreceived from each of the virtual servers 142. The metrics reportsreturned to the metrics readout module 1805 may be in raw format andconsequently may not be immediately useful to the user 105.Additionally, because several metrics are collected at regularintervals, the volume of data collected needs to be synthesized to astructured format to enable the user 105 to readily perceive usefulinformation from the metrics readouts. The aggregation module 1805retrieves the raw readouts from the metrics readout module 1803 andpost-processes the data to a synthesized format (e.g., in the form of aspread sheet, in the form of a visual alert display, in the form of ascrolling display, etc.).

The management server 115 may also include a redundancy module 1806. Insome instances, the management server 115 offers a redundancy feature tothe user 105, as, for example, a premium feature. Using this redundancyfeature, a user may be able to backup virtual servers 142 and/or storeddata. The user 105 may configure the management server setting toindicate that a redundant virtual server should be established in thesame cloud computing block 140 as the original virtual server 142. Inother instances, a user 105 may prefer the redundant virtual server tobe established in another cloud computing block. In other instances, theuser 105 may prefer to maintain multiple redundant virtual servers as anenhanced precautionary measure. The redundancy module 1806, depending onthe choice indicated by the user 105, establishes one or more redundancyfeatures. Every time a new process is initiated, terminated, or modifiedin the original virtual server 142, the redundancy module 1806replicates the operation in the redundant virtual servers. This ensures,for example, that the redundant virtual servers are ready to take overfor the original virtual server 142 should the original virtual server142 suffer a failure.

The management sever 115 may also include a service transfer module1807, adapted to enable a user 105 to transfer one or more virtualservers 142 from a first cloud computing block 140 to a second cloudcomputing block (not shown in FIG. 2). The functionality of the servicetransfer module 1807 is described in detail with reference to FIG. 3below.

FIG. 3 illustrates an exemplary service transfer mechanism offered bythe management server 115. In one embodiment, the management server 115,as indicated above, includes a service transfer module 1807 to performthe various functionalities of the service transfer mechanism. Thephrase “service transfer,” as referred to herein, refers to a sequenceof operations involved in transferring one or more virtual servers(e.g., 262, 264) from a first cloud computing block 260 (of a firstservice provider) to a second cloud computing block 266 (of a secondservice provider).

The following section details one possible mechanism for transferringthe virtual servers from the first cloud computing block 260 to thesecond cloud computing block 266. It is understood, however, that otherpossible mechanisms for suspending and reinitiating operations of aserver, as known by one of skill in the art, may also be utilized inperforming the transfer operation. In one embodiment, the servicetransfer module 1807 receives a request initiated by a user 105 (throughthe management server 115) to transfer virtual servers (262, 264) from afirst cloud computing block 260 to a second cloud computing block 266.The first cloud computing block 260 and the second cloud computing block266, in some instances, is operated by two different service providers.

Subsequent to receiving the request, the service transfer module 1807identifies the various virtual servers (262, 264) to be transferred. Insome instances, the service transfer module 1807 may communicate withthe configuration module 1802 to retrieve information related to thevirtual servers (e.g., the cloud computing block associated with thevirtual servers, etc.). The service transfer module 1807 then initiatesthe service transfer operation by suspending all active processes in thevirtual servers 262, 264 that are to be transferred. The servicetransfer module 1807 then retrieves the parameters associated with eachvirtual server 262, 264 that are specific to the cloud computing block(e.g., configuration files as they apply to 2 particular cloud computingblock, etc., redundant virtual machine setup information, etc.). In oneembodiment, the service transfer module 1807 operates on all hypervisorsto ensure that processes specific to each hypervisor is selectivelysuspended.

In some instances, the service transfer module 1807 then compresses andencrypts information related to the processes, setup information of thevirtual servers, local storage data associated with the virtual servers262, 264. In one embodiment, the service transfer module 1807 retrievesthe compressed data and stores it temporarily in a storage unitassociated with the management server 115 (e.g., the persistent storage126). In other embodiments, the service transfer module 1807 retrievesthe compressed data and stores it temporarily in a temporary cloudcomputing block (not shown in FIG. 3) until subsequent operations areperformed. Additionally, in some instances, the service transfer module1807 decrypts and/or uncompresses the temporarily stored data prior totransferring the virtual machines to the second cloud computing block266.

In some instances, the service transfer module 1807 works in tandem withthe VS instantiation module 1801 to instantiate a new set of virtualservers 268, 270 in the second cloud computing block 266. The servicetransfer module 1807 may establish the new virtual servers 268, 270based on one or more considerations. For example, the new virtualservers 268, 270 may be such that they have similar performancecapabilities as compared to the previous virtual servers 262, 264. Inanother example, the new virtual servers 268, 270 may be matched withthe previous virtual servers 268, 270 in terms of cost. That is, if thefirst cloud computing block 260 offers virtual servers for a moreexpensive rate, the performance capacities of virtual servers 268, 270may be increased (compared to the respective previous virtual servers262, 264) to a level commensurate with the previous cost. Still otherpermutations and combinations, as would be appreciated by a person ofskill in the art, are additionally applicable for establishing the newvirtual servers 268, 270. It is also noted that the service transfermodule 1807 may cause a different number of virtual servers (as comparedto the number of servers being suspended and removed from the firstcloud computing block 260) to be generated. For example, the secondcloud computing block 266 may have four smaller virtual servers toreplace two larger virtual servers from the first cloud computing block260.

Subsequent to establishing the new virtual servers 268, 270, in someinstances, the service transfer module 1807 transfers the uncompressedand unencrypted data to the new virtual servers 268, 270. Additionally,the service transfer module 1807 retrieves the parameterized valuesextracted from the first cloud computing block and applies theparameterized values to the new virtual servers 268, 270. Since, in atleast some instances, the parameterized values (e.g., configurationvariables as applied to a particular cloud computing block) vary withrespect to the cloud computing block, the service transfer module 1807adjusts the values to adapt to the requirements of the second cloudcomputing block 266. Subsequent to installing these template variables(or parameterized values), the service transfer module 1807 initiatesthe suspended processes captured from the first cloud computing block260. The service transfer module 1807 of the management server 115 thusenables a seamless transfer of the virtual servers from one cloudcomputing block to another, without requiring the user to directlyinteract with either of the cloud computing blocks to achieve theseamless transfer.

FIG. 4 is an illustration of market-space options offered through themanagement server 115. In the illustrated embodiment, a user 105 uses auser interface (not shown in FIG. 4) of the management server 115 toestablish a cloud computing environment (by establishing one or morevirtual servers). A cloud computing environment, as described herein,refers to a collection of one or more virtual servers established foruse by a particular user through the management server. The one or morevirtual servers may be operated by one or more service providers.

In some instances, the management server 115 functions as a portal tocommercial cloud computing service providers, offering a variety ofmeans to enable the user 105 to establish a customized and defined cloudcomputing environment. Through the interface, the management server 115offers a variety of market-space options 205. The user may use one ormore of these options to custom-build a cloud computing environment. Itis understood that the list of market-space options indicated in FIG. 3is not meant to be exhaustive, and that other options or variables toenable a user to custom-build a computing environment, as would beappreciated by people of ordinary skill in the art, are additionallyapplicable. Each of the market-space options illustrated in FIG. 3 areindividually discussed below.

A first market-space option, namely a choice of provider option 208,allows a user to select one or more service providers from a list ofservice providers supported by the management server 115. Examples ofsuch service providers include Amazon®, Google®, Slice Host®, etc. Asecond market-space option, namely a choice of hours and/or duration212, allows a user to select the hours and time duration during which heintends to operate the virtual servers. Some service providers may offerthe virtual servers at a cheaper rate if the virtual servers areoperated during off-peak hours. In such instances, for example, the userhas the option of specifying a specific time (or duration of time)during which he intends to operate the virtual machines to takeadvantage of the cheaper rate.

In some instances, the cloud computing market-space 205 includes achoice of server type and/or layout 218. In such instances, the user 105has the option of specifying what type of server layout and/or type(e.g., Apache server, X server, other kinds of web server layouts, FTPstorage server, etc.). The VS instantiation module 1801, for example,would instantiate each of the virtual servers with the requested servertype and/or layout.

Another example of the cloud computing market-space options 205 includesa choice based on cost of service 220. In some instances, the user 105would be able to indicate a particular cost or range of affordable costsfor establishing and operating the virtual servers. Accordingly, in someinstances, the management server 115 identifies one or more particularservice providers, particular service time durations, etc., that matchthe user's choice of cost. Additionally, or in lieu of the choice ofcost option 220, a user may indicate a desired computing capacity 222 toestablish the cloud computing environment. In some instances, the usermay balance (e.g., using a sliding scale mechanism as shown in FIG. 5)the cost and performance capacity factors to establish a desired cloudcomputing environment.

The cloud computing market-space may also offer the user 105 a range ofother options, including a choice based on geographic location of thephysical server operating the virtual servers. In some instances, a user105 may prefer the virtual server to be established such that thephysical server operating the virtual server is located at an optimalgeographic location. Similarly a user may desire multiple virtualservers operated by geographically distributed physical servers (e.g.,physical servers operating in every continent or every country). Itwould be difficult to find one service provider catering to adistributed geographic topography. However, when the user 105 selectsthe geographic location 224 option of the cloud computing market-space205, the management server queries the physical server distribution(i.e., the geographic distribution) of each service provider toestablish a suitable cloud computing environment for the user 105.

In some instances, the cloud computing market-space options 205 includea choice based on value-add services 226. Using such a choice, a usermay include, for example, premium add-on services while establishing thecloud computing environment. Examples of such premium add-on servicesinclude logging of performance metrics, reporting of performance alerts,redundancy options, technical maintenance and support, etc. Thevalue-add services may include premium services offered by therespective service providers or services offered by the managementserver 115. Other options in the cloud computing market-space mayinclude, for example, storage options 228, allowing a user 105 to choosea storage mechanism from a variety of storage options. For example, theuser 105 may elect to store data associated with the virtual servers(e.g., user data, log data, etc.) in the persistent storage unit 126 ofthe management server 115, or may elect to purchase a cloud storageservice to store the data.

As illustrated in FIG. 4, the cloud computing market-space features 205include an option allowing the user 105 to bid for a cloud computingenvironment 216. The user 105, in some instances, may provide an inputon a desired number of features (e.g., computing capacity, duration ofoperation, etc.) through the interface of the management server 115. Inaddition, using the bidding option 216, the user may also enter a baseprice (e.g., a daily rate that the user is willing to pay for eachvirtual server in the cloud computing environment, etc.) to indicate thebid amount. The management server 115, taking into account the desiredfeatures and the bid amount, queries all available service providers togenerate a list of suitable cloud computing environment configurations.In some instances, each configuration in the generated list covers arange of features, allowing the user to select one configuration. Insome instances, however, when the management server 115 is unable tofind any configurations at (or around) the user's bid amount, themanagement server 115 prompts the user 105 to enter a different bidamount. For example, if the management server 115 may indicate to theuser 105 that the cheapest configuration is available at a particularprice and that the user 105 should at least match that particular pricewhen entering the bid amount. In some instances, if the managementserver 115 is unable to find a configuration matching the user's bidamount, the management server 115 may yet reach out (e.g., bytransmitting an email or an SMS message, etc.) to the user at a latertime when a configuration matching the user's bid amount does becomeavailable.

FIG. 5 depicts an exemplary graphical user interface 301 of themanagement server 115. In one embodiment, as described above, themanagement server presents a suite of market-space options to enable auser to establish a customized cloud computing environment. Theexemplary user interface 301 of FIG. 5 is for the purpose ofillustration only, and is not to be construed as a limiting or soleexample of the management server's user interface. As illustrated inFIG. 5, a first field 303 of the user interface 301 enables a user toselect one or more service providers. The user may select one serviceprovider, or make multiple selections to select more than one serviceprovider, or may even select a feature that allows the management serverto utilize any combination of service providers based on othermarket-space options selected by the user.

A second option 305 enables the user to select a duration during whichthe user desires to use the cloud computing environment. In one example,the user may merely indicate AM or PM usage. In another example, theuser may indicate a time range (10 AM to 10 PM). In another example, theuser may just indicate that he needs to use the cloud computingenvironment for 5 hours every day.

A third option 307 allows the user to indicate a type of availability ofthe cloud computing environment. In one example, the user may indicatethat he intends to use the cloud computing environment only during peakhours. In another example, the user may indicate his preference to usethe cloud computing environment only during non-peak hours. A don't-careoption (not shown in FIG. 5) may allow the user to indicate that he doesnot care about when the service would be available.

A fourth option 309, as illustrated in FIG. 5, includes a sliding scale315 to enable a user to balance computational capacity of the cloudcomputing environment against the cost of the cloud computingenvironment. The left corner of the sliding bar indicates a low-costcriterion, while the right corner of the sliding bar indicates a highperformance-capacity criterion for establishing the cloud computingenvironment. The user may choose any point in the spectrum to choose adesired balance between the cost and performance capacity options.

A fifth option 311 provides the user one or more options to selectredundancy related features. Redundancy features include, for example, afull virtual server backup, partial backup (e.g., a storage databackup), etc. Alternately, as with other options in the user interface301, the user may choose a “no preference” option. A server layoutoption 313 allows the user to select a server layout (e.g., an apacheserver layout, an X server layout, etc.). If the user selects a layoutoption, the management server 115 ensures that the virtual servers areestablished with the selected layout option at the time of establishingthe user's cloud computing environment.

The user interface 301 of FIG. 5 also includes a geographic preference319 option. Using this option, the user can request the managementserver 115 to identify service providers that operate physical serversin particular geographic locations. By indicating one or more geographiclocation preferences, the user is able to build a cloud computingenvironment that, for example, is enabled by geographically distributedphysical servers.

FIG. 6 is an exemplary illustration of a selection page 350 thatprovides a list of potential cloud computing configurations based on theuser's inputs. As described with reference to FIG. 5, the user providesa list of options or preferences (through a user interface 301 of themanagement server 115) for establishing a cloud computing environment.The management server 115 assimilates the information and queries eachservice provider to determine availability of features. Alternately, inone embodiment, the management server 115 uses information alreadystored by the configuration module 1802. As described above withreference to FIG. 2, the configuration module 1802 periodically querieseach service provider to retrieve and store a list of features and costoptions offered by each service provider.

The management server 115 uses the information related to the serviceproviders to build cloud computing configurations. In some instances, aparticular configuration may include features from one service provider.In other instances, a particular configuration may incorporate featuresoffered by two or more service providers. 352, 354, and 356 are examplesof such potential configurations that are generated based on the user'sinputs. Each configuration provides a list of features and associatedcost, allowing the user to select a desired configuration. Alternately,or in lieu of the above potential configurations, the selection page 350may also offer a bidding selection 358. Using this selection, the usermay enter a bid amount that he would like to pay for a cloud computingenvironment that includes the features previously selected by the user.

FIG. 7 is a flow diagram of a process for enabling a user to establish acustomized cloud computing environment using the service offered by themanagement server. In one embodiment, the management server presents afront-end service to enable a user to subscribe to a cloud computingenvironment 402. The management server is associated with one or moreservice providers, and therefore allows the user to build a customizedcloud computing environment using features offered by one or moreservice providers. The management server presents, for example, anoptions menu through a graphical user interface 404. The options menupresents a list of features for building a customized cloud computingenvironment, allowing the user to indicate his preferences on variousfeatures of the cloud computing environment. For example, using theoptions menu, the user may indicate a preference of one or more serviceproviders, a preference of geographical location of physical serversoperated by the service providers, a number of virtual servers in thecloud computing environment, etc.

After the user selects one or more options from the options menu, themanagement server assimilates the information and builds a correspondinglist of potential cloud computing configurations 406. The managementserver, using the graphical user interface, presents the list ofconfigurations to the user. An example of such a display page wasdescribed previously with reference to FIG. 6. The user selects aparticular configuration from the list of configurations.

Subsequent to the user selecting a configuration, the management servercommunicates with the respective service providers to establish a cloudcomputing environment corresponding to the selected configuration 408.Based on the selected configuration, such a cloud computing environmentmay include one or more virtual servers. In some instances, thefront-end service of the management server may also provide an interfaceenabling the user to access the cloud computing environment through theuser's terminal 410. In such instances, the management server may use,for example, hypervisor technology to provide the interface.

FIG. 8 is a flow diagram of an exemplary process for using themanagement server to monitor and retrieve performance metrics related tocloud computing environments. In one embodiment, the management serverestablishes a cloud computing environment based on options indicated bya user using the management server's front-end service 502. The cloudcomputing environment may include, for example, one or more virtualservers (offered by one or more service providers). These virtualservers, as described above, are accessible through an interconnect(e.g., 110 of FIG. 1).

In some instances, when establishing a virtual server or subsequent toestablishing a virtual server in the cloud computing environment, themanagement server, for example, installs an instrumentation bootstrapwithin the virtual server 504. The instrumentation bootstrap, asexplained above with reference to FIG. 2, may include multiplebackground processes that are adapted to monitor and record performancemetrics associated with the virtual servers. The instrumentationbootstrap, either periodically or upon specific request from a user,collects computing and I/O related performance metrics associated withthe virtual servers 506. The management server retrieves the performancemetrics from the bootstraps and, in some instances, aggregates theinformation in user-readable log files. The management server thenpresents this information to the user 508. In some instances, themanagement server also uses the metrics information to transmitappropriate alerts and warnings to the user.

FIG. 9 is a flow diagram depicting a process for enabling a user totransfer a cloud computing environment from a first service provider toa second service provider. In one embodiment, the management serverenables the user to establish a cloud computing environment 602. Themanagement server provides the user an interface to the cloud computingenvironment, allowing the user to perform computing operations in thecloud computing environment 604. The cloud computing environment mayinclude one or more virtual servers. For purposes of illustration, thecloud computing environment is such that all virtual servers within thecloud computing environment are offered by a single service provider. Itwill be appreciated that the techniques discussed herein may also beextended to cloud computing environments that comprise virtual serversoffered by more than one service provider.

The cloud computing environment operates without interruption until arequest is received from the user to transfer the cloud computingenvironment from the first service provider to a second service provider606. Upon receiving such a request, the management server suspends allactive processes in the cloud computing environment, retrieves templaterelated parameters (e.g., configuration variables specific to the firstcloud computing environment, etc.), and compresses and encrypts datafiles associated with the cloud computing environment 608. In someinstances, the management server transfers all the files and informationrelated to the suspended processes to a temporary location within themanagement server 610. In other instances, the management server maytransfer the information to a temporary cloud computing environment orcloud storage environment.

In some instances, the management server establishes a (new) secondcloud computing environment based on the user's choices. It will beappreciated that the order of the process indicated herein may bealtered as necessary. For example, the management server may establishthe second cloud computing environment even before suspending theprocesses of the first cloud computing environment.

Finally, the management server causes the temporarily stored data to betransferred to the second cloud computing environment. The templatevariables corresponding to the second computing environment areinitialized based on the template parameters retrieved from the firstcloud computing environment. The data (that was uncompressed andunencrypted in the temporary storage location) is also transferred tothe second cloud computing environment. The suspended processes arere-fired using the virtual servers in the second cloud computingenvironment 612.

Thus, methods and systems for cloud computing management have beendescribed. The techniques introduced above can be implemented by usingprogrammable circuitry programmed by software and/or firmware, or byusing special-purpose hardwired circuitry, or by using a combination ofsuch embodiments. Special-purpose hardwired circuitry may be in the formof, for example, one or more application-specific integrated circuits(ASICs), programmable logic devices (PLDs), field-programmable gatearrays (FPGAs), etc.

Software or firmware to implement the techniques introduced here may bestored on a machine-readable medium and may be executed by one or moregeneral-purpose or special-purpose programmable microprocessors. A“machine-readable medium”, as the term is used herein, includes anymechanism that can store information in a form accessible by a machine(a machine may be, for example, a computer, network device, cellularphone, personal digital assistant (PDA), manufacturing tool, any devicewith one or more processors, etc.). For example, a machine-accessiblemedium includes recordable/non-recordable media (e.g., read-only memory(ROM); random access memory (RAM); magnetic disk storage media; opticalstorage media; flash memory devices; etc.), etc.

Although the present invention has been described with reference tospecific exemplary embodiments, it will be recognized that the inventionis not limited to the embodiments described, but can be practiced withmodification and alteration within the spirit and scope of the appendedclaims. Accordingly, the specification and drawings are to be regardedin an illustrative sense rather than a restrictive sense.

1. A method for providing a customized cloud computing session, themethod comprising: providing, by a management server, a plurality ofoptions to enable a user to define a desired configuration of a cloudcomputing session, the plurality of options corresponding to resourcesassociated with one or more third-party service providers; receiving, bythe management server, an input selection from the user corresponding tothe user's selection of one or more parameters from the plurality ofoptions, wherein the input selection is indicative of the user's desiredconfiguration; and establishing, by the management server, a customizedcloud computing session according to the desired configuration, whereinthe customized cloud computing session is established using selectedresources of the one or more third-party service providers as indicatedby the one or more parameters of the input selection.
 2. The method ofclaim 1, wherein the plurality of options includes one or more of: achoice of one or more target third-party service providers; a choice ofredundancy; a choice of storage capacity; a choice of duration of thecustomized cloud computing session; a choice of layout of one or moreservers associated with the cloud computing session; a choice of ageographic location of one or more physical servers operated by the oneor more third-party service providers; a choice of a computing capacityof servers instantiated in the customized cloud computing session; or achoice of one or more value-add services offered by the managementserver.
 3. The method of claim 1, wherein the step of establishing thecustomized cloud computing session further comprises: providing, by themanagement server, a plurality of session-options that match the user'sinput selection, each of the plurality of session-options correspondingto a particular configuration of a cloud computing session; receiving,by the management server, a session-selection from the usercorresponding to the user's selection of one of the plurality ofsession-options, wherein the session-selection is indicative of theuser's desired configuration; and establishing, by the managementserver, a customized cloud computing session according to the desiredconfiguration.
 4. The method of claim 3, wherein a given session-optionof the plurality of session-options includes configuration informationpertinent to the given session-option, the configuration informationincluding one or more of: an indication of a service-provider; anindication of a cost of the given session-option; an indication of aduration of the given session-option; an indication of a redundancyavailability associated with the given session-option; an indication ofa number of servers available for instantiation in the givensession-option; or an indication of an amount of storage available inassociation with the given session-option.
 5. The method of claim 1,wherein subsequent to establishing the customized cloud computingsession, the method further comprises: monitoring, by the managementserver, a performance metric associated with the customized cloudcomputing session.
 6. The method of claim 5, wherein the performancemetric includes one or more of: an indication of a load on a physicalserver associated with a virtual server instantiated in the customizedcloud computing session; an indication of memory availability in thephysical server; an indication of a number of process threads running onthe physical server; an indication of a performance of a processor inthe physical server; or an indication of a capacity of the processor. 7.The method of claim 5, wherein the management server uses theperformance metric to provide the user one or more of the following: aperformance report of the customized cloud computing session; or analert relating to an issue associated with the customized cloudcomputing session.
 8. The method of claim 5, wherein the managementserver establishes an instrumentation bootstrap in every virtual serverinstantiated within the customized cloud computing session.
 9. Themethod of claim 1, further comprising: upon request from the user,transferring, by the management server, one or more virtual serversincluded in the customized cloud computing session to a second cloudcomputing session.
 10. The method of claim 9, wherein the second cloudcomputing session is one of: a new cloud computing session with novirtual servers; or a preexisting cloud computing session that includesone or more preexisting virtual servers.
 11. The method of claim 9,wherein the transferring step further comprises: suspending one or moreprocess threads associated with each of the one or more virtual serversof the customized cloud computing session; retrieving configurationparameters associated with the customized cloud computing session; andactivating the one or more process threads and the configurationparameters in the second cloud computing session.
 12. A method forproviding a marketplace for establishing a customized cloud computingsession, the method comprising: offering, by a management server, acentralized marketplace to allow a user to select from a plurality ofoptions associated with establishing a customized cloud computingsession, wherein the plurality of options correspond to resourcesoffered by one or more third-party service providers for establishingthe customized cloud computing session; receiving, by the managementserver, an input selection indicative of one or more options selected bythe user from the plurality of options; providing, by the managementserver, one or more session-options, each session-option indicative of aparticular cloud computing session that matches the user's inputselection; and establishing, by the management server, the customizedcloud computing session using resources of the one or more third-partyservice providers as indicated by the user's selection of one of thesession-options.
 13. The method of claim 12, wherein the plurality ofoptions includes one or more of: a choice of one or more targetthird-party service providers; a choice of redundancy; a choice ofstorage capacity; a choice of duration of the customized cloud computingsession; a choice of layout of one or more servers associated with thecloud computing session; a choice of a geographic location of one ormore physical servers operated by the one or more third-party serviceproviders; a choice of a computing capacity of servers instantiated inthe customized cloud computing session; or a choice of one or morevalue-add services offered by the management server.
 14. The method ofclaim 12, wherein a given session-option of the one or moresession-options includes configuration information pertinent to thegiven session-option, the configuration information including one ormore of: an indication of a service-provider; an indication of a cost ofthe given session-option; an indication of a duration of the givensession-option; an indication of a redundancy availability associatedwith the given session-option; an indication of a number of serversavailable for instantiation in the given session-option; or anindication of an amount of storage available in association with thegiven session-option.
 15. The method of claim 12, further comprising:providing, by the management server, a bidding option to enable the userto specify a desired cost for establishing the customized cloudcomputing session.
 16. The method of claim 15, further comprising:providing, by the management server, one or more bidding-matches inresponse to the user's specification of the desired cost, each of theone or more bidding-matches indicative of a particular cloud computingsession that substantially matches the desired cost criterion.
 17. Themethod of claim 15, further comprising: if the management server isunable to identify a particular computing session that substantiallymatches the desired cost specified by the user, providing, by themanagement server, an indication of availability of a new computingsession that substantially matches the desired cost specified by theuser when the new computing session becomes available at a later time.18. The method of claim 12, further comprising: providing, by themanagement server, a premium service associated with the customizedcloud computing session.
 19. The method of claim 18, wherein the premiumservice includes one or more of: an option to receive periodicperformance reports; an option to receive alerts in response tospecified criteria; an option to establish redundant storage for data;or an option to transfer one or more virtual servers from the customizedcloud computing session to a different cloud computing session.
 20. Themethod of claim 12, wherein subsequent to establishing the customizedcloud computing session, the method further comprises: monitoring, bythe management server, a performance metric associated with thecustomized cloud computing session.
 21. The method of claim 12, whereinthe performance metric includes one or more of: an indication of a loadon a physical server associated with a virtual server instantiated inthe customized cloud computing session; an indication of memoryavailability in the physical server; an indication of a number ofprocess threads running on the physical server; an indication of aperformance of a processor in the physical server; or an indication of acapacity of the processor.
 22. A method of operating a cloud computingsession, the method comprising: controlling, using a management server,access to a first cloud computing session, wherein the first cloudcomputing session includes one or more virtual servers, and wherein thefirst cloud computing session operates based on computing resources of afirst third-party service provider; receiving, by the management server,a request to transfer the one or more virtual servers from the firstcloud computing session to a second cloud computing session; and inresponse to the request, porting, by the management server, each of theone or more virtual servers of the first cloud computing session to thesecond cloud computing session.
 23. The method of claim 22, wherein theporting step further comprises: suspending one or more processoperations of each of the one or more virtual servers of the first cloudcomputing session; retrieving storage data and configuration dataassociated with the one or more virtual servers; instantiating newprocess operations in one or more new virtual servers in the secondcloud computing session, wherein the new process operations are based onthe suspended one or more process operations of the first cloudcomputing session; and transferring the storage data and theconfiguration data to be stored in association with the one or more newvirtual servers of the second cloud computing session.
 24. The method ofclaim 23, wherein the management server operates as a temporary bufferfor the storage and configuration data before being copied to the secondcloud computing session.
 25. The method of claim 23, wherein thesuspended process operations are terminated subsequent to theinstantiation of the new process operations in the second cloudcomputing session.
 26. The method of claim 23, wherein the managementserver translates the configuration data associated with the firstcomputing session to be adapted for use with the second computingsession based on a setup of the second computing session.
 27. The methodof claim 23, wherein the management server compresses and encodes thestorage data and/or the configuration data prior to transferring to thesecond cloud computing session.
 28. The method of claim 27, wherein themanagement server decompresses and decodes the storage data and/or theconfiguration data subsequent to transferring such data to the secondcloud computing session.
 29. The method of claim 23, wherein the secondcloud computing session operates based on computing resources of thefirst third-party service provider.
 30. The method of claim 23, whereinthe second cloud computing session operates based on computing resourcesof a second third-party service provider.
 31. A system for providing acustomized cloud computing session, the system comprising: a processor;a memory storing code which, when executed by the processor, causes thenetwork storage server to perform a process, including: providing aplurality of options to enable a user to define a desired configurationof a cloud computing session, the plurality of options corresponding toresources associated with one or more third-party service providers;receiving an input selection from the user corresponding to the user'sselection of one or more parameters from the plurality of options,wherein the input selection is indicative of the user's desiredconfiguration; and establishing a customized cloud computing sessionaccording to the desired configuration, wherein the customized cloudcomputing session is established using selected resources of the one ormore third-party service providers as indicated by the one or moreparameters of the input selection.
 32. The system of claim 31, whereinthe plurality of options includes one or more of: a choice of one ormore target third-party service providers; a choice of redundancy; achoice of storage capacity; a choice of duration of the customized cloudcomputing session; a choice of layout of one or more servers associatedwith the cloud computing session; a choice of a geographic location ofone or more physical servers operated by the one or more third-partyservice providers; a choice of a computing capacity of serversinstantiated in the customized cloud computing session; or a choice ofone or more value-add services offered by the management server.
 33. Thesystem of claim 31, wherein the step of establishing the customizedcloud computing session of the process further comprises: providing aplurality of session-options that match the user's input selection, eachof the plurality of session-options corresponding to a particularconfiguration of a cloud computing session; receiving asession-selection from the user corresponding to the user's selection ofone of the plurality of session-options, wherein the session-selectionis indicative of the user's desired configuration; and establishing acustomized cloud computing session according to the desiredconfiguration.
 34. The system of claim 33, wherein a givensession-option of the plurality of session-options includesconfiguration information pertinent to the given session-option, theconfiguration information including one or more of: an indication of aservice-provider; an indication of a cost of the given session-option;an indication of a duration of the given session-option; an indicationof a redundancy availability associated with the given session-option;an indication of a number of servers available for instantiation in thegiven session-option; or an indication of an amount of storage availablein association with the given session-option.
 35. The system of claim31, wherein subsequent to establishing the customized cloud computingsession, the process further comprises: monitoring a performance metricassociated with the customized cloud computing session.
 36. The systemof claim 35, wherein the performance metric includes one or more of: anindication of a load on a physical server associated with a virtualserver instantiated in the customized cloud computing session; anindication of memory availability in the physical server; an indicationof a number of process threads running on the physical server; anindication of a performance of a processor in the physical server; or anindication of a capacity of the processor.
 37. The system of claim 35,wherein the performance metric is used to provide the user one or moreof the following: a performance report of the customized cloud computingsession; or an alert relating to an issue associated with the customizedcloud computing session.
 38. The system of claim 31, wherein the processfurther comprises: upon request from the user, transferring one or morevirtual servers included in the customized cloud computing session to asecond cloud computing session.
 39. The system of claim 38, wherein thesecond cloud computing session is one of: a new cloud computing sessionwith no virtual servers; or a preexisting cloud computing session thatincludes one or more preexisting virtual servers.
 40. The system ofclaim 38, wherein the transferring step of the process furthercomprises: suspending one or more process threads associated with eachof the one or more virtual servers of the customized cloud computingsession; retrieving configuration parameters associated with thecustomized cloud computing session; and activating the one or moreprocess threads and the configuration parameters in the second cloudcomputing session.
 41. A system for providing a customized cloudcomputing session, the system comprising: a processor; a memory storingcode which, when executed by the processor, causes the network storageserver to perform a process, including: offering a centralizedmarketplace to allow a user to select from a plurality of optionsassociated with establishing a customized cloud computing session,wherein the plurality of options correspond to resources offered by oneor more third-party service providers for establishing the customizedcloud computing session; receiving an input selection indicative of oneor more options selected by the user from the plurality of options;providing one or more session-options, each session-option indicative ofa particular cloud computing session that matches the user's inputselection; and establishing the customized cloud computing session usingresources of the one or more third-party service providers as indicatedby the user's selection of one of the session-options.
 42. The system ofclaim 41, wherein the process further comprises: providing a biddingoption to enable the user to specify a desired cost for establishing thecustomized cloud computing session.
 43. The system of claim 42, whereinthe process further comprises: providing one or more bidding-matches inresponse to the user's specification of the desired cost, each of theone or more bidding-matches indicative of a particular cloud computingsession that substantially matches the desired cost criterion.
 44. Thesystem of claim 42, wherein the process further comprises: if the systemis unable to identify a particular computing session that substantiallymatches the desired cost specified by the user, providing an indicationof availability of a new computing session that substantially matchesthe desired cost specified by the user when the new computing sessionbecomes available at a later time.
 45. The system of claim 41, whereinthe process further comprises: providing a premium service associatedwith the customized cloud computing session.
 46. The system of claim 45,wherein the premium service includes one or more of: an option toreceive periodic performance reports; an option to receive alerts inresponse to specified criteria; or an option to transfer one or morevirtual servers from the customized cloud computing session to adifferent cloud computing session.
 47. The system of claim 41, whereinsubsequent to establishing the customized cloud computing session, theprocess further comprises: monitoring a performance metric associatedwith the customized cloud computing session.
 48. The system of claim 41,wherein the performance metric includes one or more of: an indication ofa load on a physical server associated with a virtual serverinstantiated in the customized cloud computing session; an indication ofmemory availability in the physical server; an indication of a number ofprocess threads running on the physical server; an indication of aperformance of a processor in the physical server; or an indication of acapacity of the processor.
 49. A management system for operating a cloudcomputing session, the system comprising: a processor; a memory storingcode which, when executed by the processor, causes the network storageserver to perform a process, including: controlling access to a firstcloud computing session, wherein the first cloud computing sessionincludes one or more virtual servers, and wherein the first cloudcomputing session operates based on computing resources of a firstthird-party service provider; receiving a request to transfer the one ormore virtual servers from the first cloud computing session to a secondcloud computing session; and in response to the request, porting each ofthe one or more virtual servers of the first cloud computing session tothe second cloud computing session.
 50. The system of claim 49, whereinthe porting step of the process further comprises: suspending one ormore process operations of each of the one or more virtual servers ofthe first cloud computing session; retrieving storage data andconfiguration data associated with the one or more virtual servers;instantiating new process operations in one or more new virtual serversin the second cloud computing session, wherein the new processoperations are based on the suspended one or more process operations ofthe first cloud computing session; and transferring the storage data andthe configuration data to be stored in association with the one or morenew virtual servers of the second cloud computing session.
 51. Thesystem of claim 50, wherein the system operates as a temporary bufferfor the storage and configuration data before being copied to the secondcloud computing session.
 52. The system of claim 50, wherein thesuspended process operations are terminated subsequent to theinstantiation of the new process operations in the second cloudcomputing session.
 53. The system of claim 50, wherein the systemtranslates the configuration data associated with the first computingsession to be adapted for use with the second computing session based ona setup of the second computing session.
 54. The system of claim 50,wherein the system compresses and encodes the storage data and/or theconfiguration data prior to transferring to the second cloud computingsession.
 55. The system of claim 54, wherein the system decompresses anddecodes the storage data and/or the configuration data subsequent totransferring such data to the second cloud computing session.
 56. Thesystem of claim 50, wherein the second cloud computing session operatesbased on computing resources of the first third-party service provider.57. The system of claim 50, wherein the second cloud computing sessionoperates based on computing resources of a second third-party serviceprovider.